/*
* This file is a part of the open-eBackup project.
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
* If a copy of the MPL was not distributed with this file, You can obtain one at
* http://mozilla.org/MPL/2.0/.
*
* Copyright (c) [2024] Huawei Technologies Co.,Ltd.
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
*/
package openbackup.data.protection.access.provider.sdk.copy;

import openbackup.data.protection.access.provider.sdk.base.DataProtectionProvider;
import openbackup.system.base.sdk.copy.model.Copy;
import openbackup.system.base.sdk.copy.model.CopyInfo;
import openbackup.system.base.sdk.dee.model.CopyCatalogsRequest;

/**
 * 副本拦截器
 *
 */
public interface CopyCommonInterceptor extends DataProtectionProvider<String> {
    /**
     * 浏览副本中文件和目录信息 构造request
     *
     * @param copy 副本
     * @param catalogsRequest 副本相关的信息
     */
    default void buildCatalogsRequest(Copy copy, CopyCatalogsRequest catalogsRequest) {
    }

    /**
     * 备份构造副本后置流程
     *
     * @param copyInfo 副本
     */
    default void backupBuildCopyPostprocess(CopyInfo copyInfo) {
    }
}
